package com.iris.live.services.data.repositories;

import com.iris.live.services.data.models.Lsh保险申请表附属详细Model;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import java.util.Date;
import java.util.List;

/**
 * Created by xiO on 2016/11/15.
 */
public interface 保险申请表附属详细Repository  extends JpaRepository<Lsh保险申请表附属详细Model, Integer>, JpaSpecificationExecutor<Lsh保险申请表附属详细Model> {
    @Query("select u from Lsh保险申请表附属详细Model u WHERE u.初始报价单号= ?1 and u.类型= '0' and u.第N年='1' ")
    Lsh保险申请表附属详细Model getModelBypidanhao(String ids);

    @Query("select u from Lsh保险申请表附属详细Model u WHERE u.初始报价单号= ?1 and u.类型= '1' and u.第N年= ?2 ")
    Lsh保险申请表附属详细Model getModelBypidanhaoAndYear(String ids, String year);

    @Query("select u from Lsh保险申请表附属详细Model u WHERE u.初始报价单号= ?1 and u.类型= '1' and u.第N年='1'  ")
    List<Lsh保险申请表附属详细Model> getModelBypidanhaoAndYearBussinessInsurance(String ids);

    @Query("select u from Lsh保险申请表附属详细Model u WHERE u.初始报价单号= ?1 and u.类型= '1'  ")
    List<Lsh保险申请表附属详细Model> getModelThreeBussinessInsurance(String ids);

    @Query("select u from Lsh保险申请表附属详细Model u WHERE   u.id= ?1 and u.第N年= '1' and u.类型= '1' ")
    Lsh保险申请表附属详细Model findIdandFirstYear(int ids);

    @Modifying
    @Query("update Lsh保险申请表附属详细Model a set a.交强险开始日期=?1,a.交强险结束日期=?2,a.商业险开始日期=?3,a.商业险结束日期=?4 where a.初始报价单号=?5")
    int updateModelTimeByCode(Date 交强险开始日期 ,Date 交强险结束日期,Date 商业险开始日期,Date 商业险结束日期,String code);

    @Modifying
    @Query("select u from Lsh保险申请表附属详细Model u where u.批单号 = ?1")
    List<Lsh保险申请表附属详细Model> findBy批单号(String endorsementId);

    // 获取批单号为空的交强险
    @Query("select a from Lsh保险申请表附属详细Model a where a.初始报价单号 = ?1 and a.类型 = '0' and (a.批单号 is null or a.批单号 = '') ")
    List<Lsh保险申请表附属详细Model> getForceInsuranceByCode(String code);

    // 获取批单号为空的商业险
    @Query("select a from Lsh保险申请表附属详细Model a where a.初始报价单号 = ?1 and a.类型 = '1' and (a.批单号 is null or a.批单号 = '') ")
    List<Lsh保险申请表附属详细Model> getBusinessInsuranceByCode(String code);

    // 更新批单号为空的交强险(包括保单号)
    @Modifying
    @Query("update Lsh保险申请表附属详细Model a set a.交强险开始日期=?1,a.交强险结束日期=?2 ,a.交强险保单号 = ?3 where a.初始报价单号=?4 and a.类型 = '0' and (a.批单号 is null or a.批单号 = '') ")
    int updateForceInsurancesNumberByCode(Date 交强险开始日期 ,Date 交强险结束日期,String 交强险保单号,String code);

    // 更新批单号为空的商业险（包括保单号）
    @Modifying
    @Query("update Lsh保险申请表附属详细Model a set a.商业险开始日期=?1,a.商业险结束日期=?2,a.商业险保单号 = ?3  where a.初始报价单号=?4 and a.类型 = '1' and (a.批单号 is null or a.批单号 = '') ")
    int updateBusinessInsurancesNumberByCode(Date 商业险开始日期,Date 商业险结束日期,String 商业险保单号,String code);
}

